iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
Security

從 CSSLP 視角建構恰到好處的軟體安全系列 第 19

Day 18 | 軟體開發中的供應環境安全到獨家配方保護

  • 分享至 

  • xImage
  •  

Introduction

如果把軟體的原始碼比喻為名廚的「獨家私房食譜」,那麼軟體安全就絕不只是把配方與步驟寫正確而已。即便食譜完美無瑕,若料理廚房雜亂無章、出入人員未受管控,或是出餐時缺少密封包裝,整道佳餚在送達饕客手中前,仍會面臨嚴重的食安污染危機。

Discussion

軟體工程也是相同的道理。資安裡的「環境」不能只窄化為「把OS環境更新就好」,而是涵蓋「從編譯器、相依套件傳輸、執行期隔離到出廠發布」的整條軟體生產鏈(Software Pipeline)

OWASP DSOVS CODE-001 Secure Development Environment

層級 核心狀態 Auth Branch Audit
Level 0 未管控 全員讀寫,無 MFA 允許直推與 Force Push,無審查 無集中日誌,無法追溯
Level 1 基礎人工 區分基本角色,管理員開 MFA 宣導 PR 但未強制鎖死主分支 僅依賴 Git commit log
Level 2 標準規範 全員強制 MFA,落實 RBAC 強制保護分支,禁直推且需同儕核可 集中記錄存取與設定變更
Level 3 自動防禦 整合 SSO/IAM,離職即時收回權限 需代碼簽章、CI 門禁全綠與 Code Owner 核可 實時送 SIEM 監控異常行為

OWASP DSOVS CODE-002 Hardcoded Secrets Detection

層級 核心狀態 Detection Enforcement Management
Level 0 未管控 完全無金鑰掃描機制,程式碼常寫死機敏資料 提交與建置無阻擋,洩漏無人知曉 金鑰明文散落於原始碼或設定檔中
Level 1 基礎人工 僅依賴開發者自律,或偶爾以指令手動搜尋 發現洩漏後採人工手動移除或覆寫 commit 未建立集中管理機制,多數金鑰未輪替
Level 2 標準自動化 整合 CI/CD 掃描與本地 Pre-commit Hook 攔截 檢測到高風險 Secret 觸發 Break-the-Build 結合外部 Key Vault 集中託管與動態注入
Level 3 全面防禦 涵蓋歷史 Commit 全量回溯與公開儲存庫監控 偵測洩漏自動阻斷並即時發送警報至 SIEM 聯動 API 自動使外洩金鑰失效並觸發輪替

Takeaways

環境隔離 (Environment Segregation)

(開發 Dev、測試 QA、正式線上 Prod 環境)切分出各自獨立、互不干擾的執行環境。這樣做是為了防止跨環境的交叉污染、保護裡面的敏感資料

安全的機密管理 (Secure Secrets Management)

避免直接寫死在程式碼裡、把 web.config 或 .env 檔案連同程式庫一起送進版控裡

  • 使用集中式存放的機密金鑰庫 (Secrets Vault)例如 HashiCorp Vault、AWS Secrets Manager、Azure Key Vault、CyberArk
  • 機密掃描 (Secret Scanning):在程式庫 (repository) 攔截,以防止把明碼 API金鑰給 commit推進去

安全的分支與合併策略 (Secure Branching and Merging Strategies)

  • 強制要求發起拉取請求/合併請求 (Require Pull Requests / PRs):嚴格禁止開發人員直接 push 程式碼到 main 分支。
  • 強制要求同儕審查 (Require Peer Reviews):在 PR 能夠被准許合併之前,必須至少要有另一位看過並點擊 Approve 批准該 PR
  • 強制要求狀態檢查 (Require Status Checks):在允許合併之前,必須先讓自動化的 CI 管線跑完且全數通過。

Further Reading

OWASP The DevSecOps Verification Standard
https://dsovs.com/

CODE-001 Secure Development Environment
CODE-002 Hardcoded Secrets Detection
CODE-003 Manual Secure Code Review
CODE-004 Static Application Security Testing (SAST)
CODE-005 Software Composition Analysis (SCA)
CODE-006 Software License Compliance
CODE-007 Inline IDE Secure Code Analysis
CODE-008 Container Security Scanning
CODE-009 Secure Dependency Management


上一篇
Day 17 | 程式碼防線與風險處置:從主動控制到安全風險因應策略
下一篇
Day 19 | 擬定資安測試藍圖:從食品安全抽查談測試策略與計畫落地
系列文
從 CSSLP 視角建構恰到好處的軟體安全22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言